Introducción


En un mundo cada vez más globalizado, comprender las diferencias y similitudes entre países en términos de desarrollo económico, social y ambiental es fundamental para la toma de decisiones y formulación de políticas públicas. Este proyecto realiza un análisis exploratorio de datos (EDA) sobre el conjunto de datos World Development Indicators (WDI) del Banco Mundial, con el objetivo de descubrir patrones, relaciones y tendencias clave entre distintas variables de desarrollo.



Descripción del Problema


La gran cantidad de indicadores disponibles en los datos del Banco Mundial permite explorar preguntas como:

• ¿Cómo ha evolucionado el acceso a la educación y la salud en distintas regiones?
• ¿Existe una relación entre el PIB per cápita y la esperanza de vida?
• ¿Qué países muestran anomalías en sus indicadores ambientales?
• ¿Cómo se relacionan las múltiples dimensiones del desarrollo en el tiempo?
• ¿Se relaciona el nivel de alfabetización con la esperanza de vida?

Este proyecto se propone utilizar técnicas de visualización y análisis exploratorio para generar insights significativos que nos ayuden a responder estas preguntas y, al mismo tiempo, permitir que el lector saque sus propias conclusiones.



Fuentes


Este proyecto se basa mayormente en el conjunto de datos World Development Indicators (WDI), disponible públicamente en World Bank Data360. Contiene más de mil indicadores para más de 200 países desde 1960 hasta la actualidad.

Los indicadores seleccionados fueron:

PIB per cápita (USD actuales)NY.GDP.PCAP.CD
Esperanza de vida al nacer (años)SP.DYN.LE00.IN
Tasa de alfabetización (% de adultos)SE.ADT.LITR.ZS
Emisiones de CO₂ (toneladas per cápita)EN.ATM.CO2E.PC
Población totalSP.POP.TOTL
Porcentaje de acceso a servicios básicosSH.H2O.BASW.ZS





4) Análisis Unidimensional



1. Distribución del PIB per cápita (2022)

Distribución: Se observa una distribución asimétrica hacia la derecha.

Tendencia general:
La mayoría de los países tienen un PIB per cápita inferior a los $10,000 USD.
Un número reducido de países como Suiza, Noruega, Catar y Estados Unidos muestran niveles extremadamente altos (>60,000 USD).

Esto refleja la desigualdad económica global, donde muchos países siguen en desarrollo mientras que una minoría posee economías altamente desarrolladas.



2.Esperanza de Vida por Región (2022)

Distribución general:
La gráfica muestra las diferencias en la esperanza de vida al nacer entre regiones.

Se observa que las regiones de Europa y América del Norte tienen un rango de esperanza de vida bastante alto y estrecho, mientras que África Subsahariana muestra una mayor dispersión y valores más bajos.

Valores extremos (outliers):
Se pueden identificar algunas regiones con valores atípicos, como países con niveles extremadamente altos de esperanza de vida (por ejemplo, en Europa o América del Norte).

Tendencia general:
Regiones como África Subsahariana y Asia Meridional tienen una media de esperanza de vida más baja y una gran dispersión, lo que indica disparidades significativas entre los países dentro de estas regiones.



3. Gráfico de Densidad del CO₂

Distribución: Altamente asimétrica con una larga cola hacia la derecha.

Tendencia general:
La mayoría de países emiten menos de 5 toneladas de CO₂ per cápita.
Casos extremos como Catar y Emiratos Árabes Unidos superan las 25 toneladas, destacando como outliers.

Esto refleja una enorme desigualdad en términos de responsabilidad ambiental y desarrollo económico.



4. ScatterPlot del PIB vs la Esperanza de Vida

Tendencias:

Se observa una correlación positiva: los países con mayor PIB per cápita tienden a tener una mayor esperanza de vida.

Existen excepciones notables, como Estados Unidos, que tiene un PIB alto pero una esperanza de vida más baja en comparación con otros países de ingreso similar.

La escala logarítmica permite observar con mayor claridad los países de bajos y medianos ingresos, que de otro modo quedarían agrupados.

La relación sugiere que la riqueza permite inversión en salud, educación y servicios básicos, pero no siempre se traduce directamente en mejor salud (como en EE.UU. por desigualdades internas y sistema de salud ineficiente).

5. BubblePlot Alfabetización, Agua y Población (2022)

La alfabetización impulsa mejores prácticas de higiene y salud. Sin embargo, la densidad poblacional y la gobernanza influyen en el acceso al agua.

Relación positiva general: Países más alfabetizados tienen mejor acceso a agua.

Excepciones en países de alta población: Algunos países grandes enfrentan retos en cobertura de servicios.

6.Gráfico interactivo en 3D: PIB per cápita, CO₂ per cápita y esperanza de vida

Países ricos alta emisión y alta esperanza de vida.

Ejemplos sostenibles Costa Rica con baja emisión y alta salud.

Hallazgo: Países ricos como EE.UU., Canadá y los del Golfo presentan altas emisiones con alto PIB. Algunos países como Costa Rica muestran alta esperanza de vida con menor impacto ambiental, destacando como casos de desarrollo sostenible.

Muestra el dilema entre desarrollo económico y sostenibilidad ambiental, pero también destaca que es posible un desarrollo menos contaminante si se priorizan políticas verdes.

7.Facet grid: Evolución del PIB per cápita (2000–2022) por región

Tendencias: Asia Oriental (ej. China): crecimiento acelerado.

África: crecimiento más lento o estancado.

Se utiliza facet_wrap() para mostrar mini líneas de tiempo por región. Hallazgo: Asia Oriental ha tenido un crecimiento explosivo , mientras que regiones como África han mostrado estancamiento.

El crecimiento asiático responde a industrialización, comercio exterior y políticas de inversión. África enfrenta desafíos estructurales persistentes.

8.Panel combinado: Salud y Educación

Se construye una imagen con:

Línea de esperanza de vida (2000–2022)

Línea de alfabetización en adultos

Gráfico de barras del acceso al agua

Narrativa: Países con mejoras simultáneas en educación y salud tienden a mostrar progreso estable en desarrollo humano (ej. Chile, Malasia).

Conclusiones

Existe una clara relación entre el ingreso económico de un país y los indicadores de salud y educación que existen en el mismo.

A pesar de todo, el crecimiento económico no siempre implica sostenibilidad ambiental en una región o país: hay países que emiten mucho CO₂ por su estilo de vida industrial y que a sus gobiernos no les interesa mitigar los efectos que estos tienen.

Se identificaron casos exitosos de desarrollo equilibrado, como Costa Rica o Vietnam, que sus indicadores reflejan que alcanza un alto bienestar sin elevado consumo de recursos.

Temas de interés como estos nos pueden dar perspectiva de cómo funciona el mundo, y como los países gestionan recursos y cómo esto afecta a su misma población en su estilo de vida y en el tipo de ambiente que se desarrollan

De forma del proyecto:

El storytelling y la visualización interactiva permiten transformar datos complejos en historias comprensibles para todo público.

LS0tDQp0aXRsZTogIkFuw6FsaXNpcyBkZWwgRGF0YXNldCBNdW5kaWFsIFdESSBkZWwgQmFuY28gTXVuZGlhbCINCmF1dGhvcjogIk1hdGhldyBDb3JkZXJvIGUgSWFuIFVnYWxkZSINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2RlcHRoOiAyDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9IEZBTFNFfQ0KIyBGaWphciBlbCB3b3JraW5nIGRpcmVjdG9yeSBhbCBkZWwgLlJtZA0KaWYgKGludGVyYWN0aXZlKCkgJiYgcmVxdWlyZU5hbWVzcGFjZSgicnN0dWRpb2FwaSIsIHF1aWV0bHkgPSBUUlVFKSkgew0KICBzZXR3ZChkaXJuYW1lKHJzdHVkaW9hcGk6OmdldEFjdGl2ZURvY3VtZW50Q29udGV4dCgpJHBhdGgpKQ0KfQ0KDQprbml0cjo6b3B0c19jaHVuayRzZXQoDQogIGVjaG8gICAgPSBGQUxTRSwNCiAgbWVzc2FnZSA9IEZBTFNFLA0KICB3YXJuaW5nID0gRkFMU0UNCikNCg0KbGlicmFyeShyZWFkcikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeShzdHJpbmdyKQ0KbGlicmFyeShwbG90bHkpDQpgYGANCg0KDQpgYGB7ciwgaW5jbHVkZT1GQUxTRX0NCnNvdXJjZSgiSW1wb3J0RGF0YXNldC5SIiwgbG9jYWwgPSBrbml0cjo6a25pdF9nbG9iYWwoKSkNCmBgYA0KDQo8IS0tIFTDrXR1bG8gcHJpbmNpcGFsIC0tPg0KDQojIEludHJvZHVjY2nDs24NCg0KPGJyPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTonVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOjE2cHg7Ij4NCkVuIHVuIG11bmRvIGNhZGEgdmV6IG3DoXMgZ2xvYmFsaXphZG8sIGNvbXByZW5kZXIgbGFzIGRpZmVyZW5jaWFzIHkgc2ltaWxpdHVkZXMgZW50cmUgcGHDrXNlcyBlbiB0w6lybWlub3MgZGUgZGVzYXJyb2xsbyBlY29uw7NtaWNvLCBzb2NpYWwgeSBhbWJpZW50YWwgZXMgZnVuZGFtZW50YWwgcGFyYSBsYSB0b21hIGRlIGRlY2lzaW9uZXMgeSBmb3JtdWxhY2nDs24gZGUgcG9sw610aWNhcyBww7pibGljYXMuIEVzdGUgcHJveWVjdG8gcmVhbGl6YSB1biBhbsOhbGlzaXMgZXhwbG9yYXRvcmlvIGRlIGRhdG9zIChFREEpIHNvYnJlIGVsIGNvbmp1bnRvIGRlIGRhdG9zIDxiPldvcmxkIERldmVsb3BtZW50IEluZGljYXRvcnMgKFdESSk8L2I+IGRlbCBCYW5jbyBNdW5kaWFsLCBjb24gZWwgb2JqZXRpdm8gZGUgZGVzY3VicmlyIHBhdHJvbmVzLCByZWxhY2lvbmVzIHkgdGVuZGVuY2lhcyBjbGF2ZSBlbnRyZSBkaXN0aW50YXMgdmFyaWFibGVzIGRlIGRlc2Fycm9sbG8uDQo8L3NwYW4+DQoNCjxicj48YnI+DQoNCiMgRGVzY3JpcGNpw7NuIGRlbCBQcm9ibGVtYQ0KDQo8YnI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OidUaW1lcyBOZXcgUm9tYW4nOyBmb250LXNpemU6MTZweDsiPg0KTGEgZ3JhbiBjYW50aWRhZCBkZSBpbmRpY2Fkb3JlcyBkaXNwb25pYmxlcyBlbiBsb3MgZGF0b3MgZGVsIEJhbmNvIE11bmRpYWwgcGVybWl0ZSBleHBsb3JhciBwcmVndW50YXMgY29tbzo8YnI+PGJyPg0KJmJ1bGw7IMK/Q8OzbW8gaGEgZXZvbHVjaW9uYWRvIGVsIGFjY2VzbyBhIGxhIGVkdWNhY2nDs24geSBsYSBzYWx1ZCBlbiBkaXN0aW50YXMgcmVnaW9uZXM/PGJyPg0KJmJ1bGw7IMK/RXhpc3RlIHVuYSByZWxhY2nDs24gZW50cmUgZWwgUElCIHBlciBjw6FwaXRhIHkgbGEgZXNwZXJhbnphIGRlIHZpZGE/PGJyPg0KJmJ1bGw7IMK/UXXDqSBwYcOtc2VzIG11ZXN0cmFuIGFub21hbMOtYXMgZW4gc3VzIGluZGljYWRvcmVzIGFtYmllbnRhbGVzPzxicj4NCiZidWxsOyDCv0PDs21vIHNlIHJlbGFjaW9uYW4gbGFzIG3Dumx0aXBsZXMgZGltZW5zaW9uZXMgZGVsIGRlc2Fycm9sbG8gZW4gZWwgdGllbXBvPzxicj4NCiZidWxsOyDCv1NlIHJlbGFjaW9uYSBlbCBuaXZlbCBkZSBhbGZhYmV0aXphY2nDs24gY29uIGxhIGVzcGVyYW56YSBkZSB2aWRhPzxicj48YnI+DQoNCkVzdGUgcHJveWVjdG8gc2UgcHJvcG9uZSB1dGlsaXphciB0w6ljbmljYXMgZGUgPGI+dmlzdWFsaXphY2nDs248L2I+IHkgPGI+YW7DoWxpc2lzIGV4cGxvcmF0b3JpbzwvYj4gcGFyYSBnZW5lcmFyIDxpPmluc2lnaHRzPC9pPiBzaWduaWZpY2F0aXZvcyBxdWUgbm9zIGF5dWRlbiBhIHJlc3BvbmRlciBlc3RhcyBwcmVndW50YXMgeSwgYWwgbWlzbW8gdGllbXBvLCBwZXJtaXRpciBxdWUgZWwgbGVjdG9yIHNhcXVlIHN1cyBwcm9waWFzIGNvbmNsdXNpb25lcy4NCjwvc3Bhbj4NCg0KPGJyPjxicj4NCg0KIyBGdWVudGVzDQo8YnI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OidUaW1lcyBOZXcgUm9tYW4nOyBmb250LXNpemU6MTZweDsiPg0KRXN0ZSBwcm95ZWN0byBzZSBiYXNhIG1heW9ybWVudGUgZW4gZWwgY29uanVudG8gZGUgZGF0b3MgPGI+V29ybGQgRGV2ZWxvcG1lbnQgSW5kaWNhdG9ycyAoV0RJKTwvYj4sIGRpc3BvbmlibGUgcMO6YmxpY2FtZW50ZSBlbiBXb3JsZCBCYW5rIERhdGEzNjAuIENvbnRpZW5lIG3DoXMgZGUgbWlsIGluZGljYWRvcmVzIHBhcmEgbcOhcyBkZSAyMDAgcGHDrXNlcyBkZXNkZSAxOTYwIGhhc3RhIGxhIGFjdHVhbGlkYWQuPGJyPjxicj4NCg0KTG9zIGluZGljYWRvcmVzIHNlbGVjY2lvbmFkb3MgZnVlcm9uOjxicj48YnI+DQomYnVsbDsgPGI+UElCIHBlciBjw6FwaXRhIChVU0QgYWN0dWFsZXMpPC9iPiDigJMgPGk+TlkuR0RQLlBDQVAuQ0Q8L2k+PGJyPg0KJmJ1bGw7IDxiPkVzcGVyYW56YSBkZSB2aWRhIGFsIG5hY2VyIChhw7Fvcyk8L2I+IOKAkyA8aT5TUC5EWU4uTEUwMC5JTjwvaT48YnI+DQomYnVsbDsgPGI+VGFzYSBkZSBhbGZhYmV0aXphY2nDs24gKCUgZGUgYWR1bHRvcyk8L2I+IOKAkyA8aT5TRS5BRFQuTElUUi5aUzwvaT48YnI+DQomYnVsbDsgPGI+RW1pc2lvbmVzIGRlIENP4oKCICh0b25lbGFkYXMgcGVyIGPDoXBpdGEpPC9iPiDigJMgPGk+RU4uQVRNLkNPMkUuUEM8L2k+PGJyPg0KJmJ1bGw7IDxiPlBvYmxhY2nDs24gdG90YWw8L2I+IOKAkyA8aT5TUC5QT1AuVE9UTDwvaT48YnI+DQomYnVsbDsgPGI+UG9yY2VudGFqZSBkZSBhY2Nlc28gYSBzZXJ2aWNpb3MgYsOhc2ljb3M8L2I+IOKAkyA8aT5TSC5IMk8uQkFTVy5aUzwvaT4NCjwvc3Bhbj4NCg0KPGJyPjxicj48aHI+PGJyPg0KDQo8c3BhbiBzdHlsZT0iY29sb3I6IzJjM2U1MDsgZm9udC1zaXplOjI2cHg7IGZvbnQtZmFtaWx5OidUaW1lcyBOZXcgUm9tYW4nOyI+PGI+NCkgQW7DoWxpc2lzIFVuaWRpbWVuc2lvbmFsPC9iPjwvc3Bhbj4NCg0KPGJyPjxicj4NCg0KIyAxLiBEaXN0cmlidWNpw7NuIGRlbCBQSUIgcGVyIGPDoXBpdGEgKDIwMjIpDQoNCmBgYHtyfQ0Kc291cmNlKCJoaXN0b2dyYW1hUElCMS5SIiwgbG9jYWwgPSBrbml0cjo6a25pdF9nbG9iYWwoKSkNCmBgYA0KDQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J1RpbWVzIE5ldyBSb21hbic7IGZvbnQtc2l6ZToxNnB4OyI+DQo8Yj5EaXN0cmlidWNpw7NuOjwvYj4gU2Ugb2JzZXJ2YSB1bmEgZGlzdHJpYnVjacOzbiBhc2ltw6l0cmljYSBoYWNpYSBsYSBkZXJlY2hhLjxicj48YnI+DQoNCjxiPlRlbmRlbmNpYSBnZW5lcmFsOjwvYj48YnI+DQpMYSBtYXlvcsOtYSBkZSBsb3MgcGHDrXNlcyB0aWVuZW4gdW4gUElCIHBlciBjw6FwaXRhIGluZmVyaW9yIGEgbG9zICQxMCwwMDAgVVNELjxicj4NClVuIG7Dum1lcm8gcmVkdWNpZG8gZGUgcGHDrXNlcyBjb21vIFN1aXphLCBOb3J1ZWdhLCBDYXRhciB5IEVzdGFkb3MgVW5pZG9zIG11ZXN0cmFuIG5pdmVsZXMgZXh0cmVtYWRhbWVudGUgYWx0b3MgKD42MCwwMDAgVVNEKS48YnI+PGJyPg0KDQpFc3RvIHJlZmxlamEgbGEgPGI+ZGVzaWd1YWxkYWQgZWNvbsOzbWljYSBnbG9iYWw8L2I+LCBkb25kZSBtdWNob3MgcGHDrXNlcyBzaWd1ZW4gZW4gZGVzYXJyb2xsbyBtaWVudHJhcyBxdWUgdW5hIG1pbm9yw61hIHBvc2VlIGVjb25vbcOtYXMgYWx0YW1lbnRlIGRlc2Fycm9sbGFkYXMuDQo8L3NwYW4+DQoNCjxicj48YnI+DQoNCiMgMi5Fc3BlcmFuemEgZGUgVmlkYSBwb3IgUmVnacOzbiAoMjAyMikNCg0KYGBge3J9DQpzb3VyY2UoImJveHBsb3RWaWRhUmVnaW9uMi5SIiwgbG9jYWwgPSBrbml0cjo6a25pdF9nbG9iYWwoKSkNCmBgYA0KDQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J1RpbWVzIE5ldyBSb21hbic7IGZvbnQtc2l6ZToxNnB4OyI+DQo8Yj5EaXN0cmlidWNpw7NuIGdlbmVyYWw6PC9iPjxicj4NCkxhIGdyw6FmaWNhIG11ZXN0cmEgbGFzIGRpZmVyZW5jaWFzIGVuIGxhIGVzcGVyYW56YSBkZSB2aWRhIGFsIG5hY2VyIGVudHJlIHJlZ2lvbmVzLjxicj48YnI+DQoNClNlIG9ic2VydmEgcXVlIGxhcyByZWdpb25lcyBkZSBFdXJvcGEgeSBBbcOpcmljYSBkZWwgTm9ydGUgdGllbmVuIHVuIHJhbmdvIGRlIGVzcGVyYW56YSBkZSB2aWRhIGJhc3RhbnRlIGFsdG8geSBlc3RyZWNobywgbWllbnRyYXMgcXVlIMOBZnJpY2EgU3Vic2FoYXJpYW5hIG11ZXN0cmEgdW5hIG1heW9yIGRpc3BlcnNpw7NuIHkgdmFsb3JlcyBtw6FzIGJham9zLjxicj48YnI+DQoNCjxiPlZhbG9yZXMgZXh0cmVtb3MgKG91dGxpZXJzKTo8L2I+PGJyPg0KU2UgcHVlZGVuIGlkZW50aWZpY2FyIGFsZ3VuYXMgcmVnaW9uZXMgY29uIHZhbG9yZXMgYXTDrXBpY29zLCBjb21vIHBhw61zZXMgY29uIG5pdmVsZXMgZXh0cmVtYWRhbWVudGUgYWx0b3MgZGUgZXNwZXJhbnphIGRlIHZpZGEgKHBvciBlamVtcGxvLCBlbiBFdXJvcGEgbyBBbcOpcmljYSBkZWwgTm9ydGUpLjxicj48YnI+DQoNCjxiPlRlbmRlbmNpYSBnZW5lcmFsOjwvYj48YnI+DQpSZWdpb25lcyBjb21vIMOBZnJpY2EgU3Vic2FoYXJpYW5hIHkgQXNpYSBNZXJpZGlvbmFsIHRpZW5lbiB1bmEgbWVkaWEgZGUgZXNwZXJhbnphIGRlIHZpZGEgbcOhcyBiYWphIHkgdW5hIGdyYW4gZGlzcGVyc2nDs24sIGxvIHF1ZSBpbmRpY2EgZGlzcGFyaWRhZGVzIHNpZ25pZmljYXRpdmFzIGVudHJlIGxvcyBwYcOtc2VzIGRlbnRybyBkZSBlc3RhcyByZWdpb25lcy4NCjwvc3Bhbj4NCg0KPGJyPjxicj4NCg0KIyAzLiBHcsOhZmljbyBkZSBEZW5zaWRhZCBkZWwgQ0/igoINCg0KYGBge3J9DQpzb3VyY2UoImdyYWZpY29EZW5zaWRhZENPMl8zLlIiLCBsb2NhbCA9IGtuaXRyOjprbml0X2dsb2JhbCgpKQ0KYGBgDQoNCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTonVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOjE2cHg7Ij4NCjxiPkRpc3RyaWJ1Y2nDs246PC9iPiBBbHRhbWVudGUgYXNpbcOpdHJpY2EgY29uIHVuYSBsYXJnYSBjb2xhIGhhY2lhIGxhIGRlcmVjaGEuPGJyPjxicj4NCg0KPGI+VGVuZGVuY2lhIGdlbmVyYWw6PC9iPjxicj4NCkxhIG1heW9yw61hIGRlIHBhw61zZXMgZW1pdGVuIG1lbm9zIGRlIDUgdG9uZWxhZGFzIGRlIENP4oKCIHBlciBjw6FwaXRhLjxicj4NCkNhc29zIGV4dHJlbW9zIGNvbW8gQ2F0YXIgeSBFbWlyYXRvcyDDgXJhYmVzIFVuaWRvcyBzdXBlcmFuIGxhcyAyNSB0b25lbGFkYXMsIGRlc3RhY2FuZG8gY29tbyA8Yj5vdXRsaWVyczwvYj4uPGJyPjxicj4NCg0KRXN0byByZWZsZWphIHVuYSBlbm9ybWUgZGVzaWd1YWxkYWQgZW4gdMOpcm1pbm9zIGRlIDxiPnJlc3BvbnNhYmlsaWRhZCBhbWJpZW50YWw8L2I+IHkgZGVzYXJyb2xsbyBlY29uw7NtaWNvLg0KPC9zcGFuPg0KDQo8YnI+PGJyPg0KDQojIDQuIFNjYXR0ZXJQbG90IGRlbCBQSUIgdnMgbGEgRXNwZXJhbnphIGRlIFZpZGENCg0KYGBge3J9DQpzb3VyY2UoIlNjYXR0ZXJQbG90UElCdnNFc3BlcmFuemFWaWRhNC5SIiwgbG9jYWwgPSBrbml0cjo6a25pdF9nbG9iYWwoKSkNCmBgYA0KDQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J1RpbWVzIE5ldyBSb21hbic7IGZvbnQtc2l6ZToxNnB4OyI+DQpUZW5kZW5jaWFzOg0KDQpTZSBvYnNlcnZhIHVuYSA8Yj5jb3JyZWxhY2nDs24gcG9zaXRpdmE8L2I+OiBsb3MgcGHDrXNlcyBjb24gbWF5b3IgUElCIHBlciBjw6FwaXRhIHRpZW5kZW4gYSB0ZW5lciB1bmEgbWF5b3IgZXNwZXJhbnphIGRlIHZpZGEuPGJyPjxicj4NCg0KRXhpc3RlbiBleGNlcGNpb25lcyBub3RhYmxlcywgY29tbyBFc3RhZG9zIFVuaWRvcywgcXVlIHRpZW5lIHVuIFBJQiBhbHRvIHBlcm8gdW5hIGVzcGVyYW56YSBkZSB2aWRhIG3DoXMgYmFqYSBlbiBjb21wYXJhY2nDs24gY29uIG90cm9zIHBhw61zZXMgZGUgaW5ncmVzbyBzaW1pbGFyLjxicj48YnI+DQoNCkxhIDxiPmVzY2FsYSBsb2dhcsOtdG1pY2E8L2I+IHBlcm1pdGUgb2JzZXJ2YXIgY29uIG1heW9yIGNsYXJpZGFkIGxvcyBwYcOtc2VzIGRlIGJham9zIHkgbWVkaWFub3MgaW5ncmVzb3MsIHF1ZSBkZSBvdHJvIG1vZG8gcXVlZGFyw61hbiBhZ3J1cGFkb3MuDQoNCkxhIHJlbGFjacOzbiBzdWdpZXJlIHF1ZSBsYSByaXF1ZXphIHBlcm1pdGUgaW52ZXJzacOzbiBlbiBzYWx1ZCwgZWR1Y2FjacOzbiB5IHNlcnZpY2lvcyBiw6FzaWNvcywgcGVybyBubyBzaWVtcHJlIHNlIHRyYWR1Y2UgZGlyZWN0YW1lbnRlIGVuIG1lam9yIHNhbHVkIChjb21vIGVuIEVFLlVVLiBwb3IgZGVzaWd1YWxkYWRlcyBpbnRlcm5hcyB5IHNpc3RlbWEgZGUgc2FsdWQgaW5lZmljaWVudGUpLg0KPC9zcGFuPg0KDQoNCg0KDQoNCg0KIyA1LiBCdWJibGVQbG90IEFsZmFiZXRpemFjacOzbiwgQWd1YSB5IFBvYmxhY2nDs24gKDIwMjIpDQoNCmBgYHtyfQ0Kc291cmNlKCJidWJibGVQbG90QWxmYWJldGl6YWNpb25BY2Nlc29CYXNpY281LlIiLCBsb2NhbCA9IGtuaXRyOjprbml0X2dsb2JhbCgpKQ0KYGBgDQoNCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTonVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOjE2cHg7Ij4NCkxhIGFsZmFiZXRpemFjacOzbiBpbXB1bHNhIG1lam9yZXMgcHLDoWN0aWNhcyBkZSBoaWdpZW5lIHkgc2FsdWQuIFNpbiBlbWJhcmdvLCBsYSBkZW5zaWRhZCBwb2JsYWNpb25hbCB5IGxhIGdvYmVybmFuemEgaW5mbHV5ZW4gZW4gZWwgYWNjZXNvIGFsIGFndWEuDQoNClJlbGFjacOzbiBwb3NpdGl2YSBnZW5lcmFsOiBQYcOtc2VzIG3DoXMgYWxmYWJldGl6YWRvcyB0aWVuZW4gbWVqb3IgYWNjZXNvIGEgYWd1YS4NCg0KRXhjZXBjaW9uZXMgZW4gcGHDrXNlcyBkZSBhbHRhIHBvYmxhY2nDs246IEFsZ3Vub3MgcGHDrXNlcyBncmFuZGVzIGVuZnJlbnRhbiByZXRvcyBlbiBjb2JlcnR1cmEgZGUgc2VydmljaW9zLg0KDQo8L3NwYW4+DQoNCiMgNi5HcsOhZmljbyBpbnRlcmFjdGl2byBlbiAzRDogUElCIHBlciBjw6FwaXRhLCBDT+KCgiBwZXIgY8OhcGl0YSB5IGVzcGVyYW56YSBkZSB2aWRhDQoNCmBgYHtyfQ0Kc291cmNlKCJncmFmaWNvM0RNdWx0aWRpbWVuc2lvbmFsNi5SIiwgbG9jYWwgPSBrbml0cjo6a25pdF9nbG9iYWwoKSkNCmBgYA0KDQoNCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTonVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOjE2cHg7Ij4NClBhw61zZXMgcmljb3MgYWx0YSBlbWlzacOzbiB5IGFsdGEgZXNwZXJhbnphIGRlIHZpZGEuDQoNCkVqZW1wbG9zIHNvc3RlbmlibGVzIENvc3RhIFJpY2EgY29uIGJhamEgZW1pc2nDs24geSBhbHRhIHNhbHVkLg0KDQpIYWxsYXpnbzogUGHDrXNlcyByaWNvcyBjb21vIEVFLlVVLiwgQ2FuYWTDoSB5IGxvcyBkZWwgR29sZm8gcHJlc2VudGFuIGFsdGFzIGVtaXNpb25lcyBjb24gYWx0byBQSUIuIEFsZ3Vub3MgcGHDrXNlcyBjb21vIENvc3RhIFJpY2EgbXVlc3RyYW4gYWx0YSBlc3BlcmFuemEgZGUgdmlkYSBjb24gbWVub3IgaW1wYWN0byBhbWJpZW50YWwsIGRlc3RhY2FuZG8gY29tbyBjYXNvcyBkZSBkZXNhcnJvbGxvIHNvc3RlbmlibGUuDQoNCk11ZXN0cmEgZWwgZGlsZW1hIGVudHJlIGRlc2Fycm9sbG8gZWNvbsOzbWljbyB5IHNvc3RlbmliaWxpZGFkIGFtYmllbnRhbCwgcGVybyB0YW1iacOpbiBkZXN0YWNhIHF1ZSBlcyBwb3NpYmxlIHVuIGRlc2Fycm9sbG8gbWVub3MgY29udGFtaW5hbnRlIHNpIHNlIHByaW9yaXphbiBwb2zDrXRpY2FzIHZlcmRlcy4NCg0KDQo8L3NwYW4+DQoNCiMgNy5GYWNldCBncmlkOiBFdm9sdWNpw7NuIGRlbCBQSUIgcGVyIGPDoXBpdGEgKDIwMDDigJMyMDIyKSBwb3IgcmVnacOzbg0KDQpgYGB7cn0NCnNvdXJjZSgiZmFjZUdyaWRFdm9QSUJwb3JSZWdpb243LlIiLCBsb2NhbCA9IGtuaXRyOjprbml0X2dsb2JhbCgpKQ0KYGBgDQoNCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTonVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOjE2cHg7Ij4NCg0KVGVuZGVuY2lhczoNCkFzaWEgT3JpZW50YWwgKGVqLiBDaGluYSk6IGNyZWNpbWllbnRvIGFjZWxlcmFkby4NCg0Kw4FmcmljYTogY3JlY2ltaWVudG8gbcOhcyBsZW50byBvIGVzdGFuY2Fkby4NCg0KU2UgdXRpbGl6YSBmYWNldF93cmFwKCkgcGFyYSBtb3N0cmFyIG1pbmkgbMOtbmVhcyBkZSB0aWVtcG8gcG9yIHJlZ2nDs24uDQpIYWxsYXpnbzogQXNpYSBPcmllbnRhbCBoYSB0ZW5pZG8gdW4gY3JlY2ltaWVudG8gZXhwbG9zaXZvICwgbWllbnRyYXMgcXVlIHJlZ2lvbmVzIGNvbW8gw4FmcmljYSBoYW4gbW9zdHJhZG8gZXN0YW5jYW1pZW50by4NCg0KRWwgY3JlY2ltaWVudG8gYXNpw6F0aWNvIHJlc3BvbmRlIGEgaW5kdXN0cmlhbGl6YWNpw7NuLCBjb21lcmNpbyBleHRlcmlvciB5IHBvbMOtdGljYXMgZGUgaW52ZXJzacOzbi4gw4FmcmljYSBlbmZyZW50YSBkZXNhZsOtb3MgZXN0cnVjdHVyYWxlcyBwZXJzaXN0ZW50ZXMuDQoNCjwvc3Bhbj4NCg0KIyA4LlBhbmVsIGNvbWJpbmFkbzogU2FsdWQgeSBFZHVjYWNpw7NuDQoNCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTonVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOjE2cHg7Ij4NClNlIGNvbnN0cnV5ZSB1bmEgaW1hZ2VuIGNvbjoNCg0KTMOtbmVhIGRlIGVzcGVyYW56YSBkZSB2aWRhICgyMDAw4oCTMjAyMikNCg0KTMOtbmVhIGRlIGFsZmFiZXRpemFjacOzbiBlbiBhZHVsdG9zDQoNCkdyw6FmaWNvIGRlIGJhcnJhcyBkZWwgYWNjZXNvIGFsIGFndWENCg0KDQpOYXJyYXRpdmE6IFBhw61zZXMgY29uIG1lam9yYXMgc2ltdWx0w6FuZWFzIGVuIGVkdWNhY2nDs24geSBzYWx1ZCB0aWVuZGVuIGEgbW9zdHJhciBwcm9ncmVzbyBlc3RhYmxlIGVuIGRlc2Fycm9sbG8gaHVtYW5vIChlai4gQ2hpbGUsIE1hbGFzaWEpLg0KDQoNCjwvc3Bhbj4NCg0KIyBDb25jbHVzaW9uZXMNCg0KRXhpc3RlIHVuYSBjbGFyYSByZWxhY2nDs24gZW50cmUgZWwgaW5ncmVzbyBlY29uw7NtaWNvIGRlIHVuIHBhw61zIHkgbG9zIGluZGljYWRvcmVzIGRlIHNhbHVkIHkgZWR1Y2FjacOzbiBxdWUgZXhpc3RlbiBlbiBlbCBtaXNtby4NCg0KDQpBIHBlc2FyIGRlIHRvZG8sIGVsIGNyZWNpbWllbnRvIGVjb27Ds21pY28gbm8gc2llbXByZSBpbXBsaWNhIHNvc3RlbmliaWxpZGFkIGFtYmllbnRhbCBlbiB1bmEgcmVnacOzbiBvIHBhw61zOiBoYXkgcGHDrXNlcyBxdWUgZW1pdGVuIG11Y2hvIENP4oKCIHBvciBzdSBlc3RpbG8gZGUgdmlkYSBpbmR1c3RyaWFsIHkgcXVlIGEgc3VzIGdvYmllcm5vcyBubyBsZXMgaW50ZXJlc2EgbWl0aWdhciBsb3MgZWZlY3RvcyBxdWUgZXN0b3MgdGllbmVuLg0KDQoNClNlIGlkZW50aWZpY2Fyb24gY2Fzb3MgZXhpdG9zb3MgZGUgZGVzYXJyb2xsbyBlcXVpbGlicmFkbywgY29tbyBDb3N0YSBSaWNhIG8gVmlldG5hbSwgcXVlIHN1cyBpbmRpY2Fkb3JlcyByZWZsZWphbiBxdWUgYWxjYW56YSB1biBhbHRvIGJpZW5lc3RhciBzaW4gZWxldmFkbyBjb25zdW1vIGRlIHJlY3Vyc29zLg0KDQpUZW1hcyBkZSBpbnRlcsOpcyBjb21vIGVzdG9zIG5vcyBwdWVkZW4gZGFyIHBlcnNwZWN0aXZhIGRlIGPDs21vIGZ1bmNpb25hIGVsIG11bmRvLCB5IGNvbW8gbG9zIHBhw61zZXMgZ2VzdGlvbmFuIHJlY3Vyc29zIHkgY8OzbW8gZXN0byBhZmVjdGEgYSBzdSBtaXNtYSBwb2JsYWNpw7NuIGVuIHN1IGVzdGlsbyBkZSB2aWRhIHkgZW4gZWwgdGlwbyBkZSBhbWJpZW50ZSBxdWUgc2UgZGVzYXJyb2xsYW4NCg0KRGUgZm9ybWEgZGVsIHByb3llY3RvOg0KDQpFbCBzdG9yeXRlbGxpbmcgeSBsYSB2aXN1YWxpemFjacOzbiBpbnRlcmFjdGl2YSBwZXJtaXRlbiB0cmFuc2Zvcm1hciBkYXRvcyBjb21wbGVqb3MgZW4gaGlzdG9yaWFzIGNvbXByZW5zaWJsZXMgcGFyYSB0b2RvIHDDumJsaWNvLg0KDQoNCg==